package cn.edu.scau.cmi.ema.dao;

import java.util.Set;

import org.springframework.dao.DataAccessException;
import cn.edu.scau.cmi.ema.domain.*;
import cn.edu.scau.cmi.ema.domain.base.CmiPagination;

public interface FeatureDAO extends JpaDao<Feature> {

	public Feature findFeatureById(Integer id) throws DataAccessException;

	public Feature findFeatureById(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Feature> findFeatureByName(String name) throws DataAccessException;

	public Set<Feature> findFeatureByName(String name, int startResult, int maxRows) throws DataAccessException;

	public Set<Feature> findFeatureByNameContaining(String name_1) throws DataAccessException;

	public Set<Feature> findFeatureByNameContaining(String name_1, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Feature> findFeatureByDescription(String description) throws DataAccessException;

	public Set<Feature> findFeatureByDescription(String description, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Feature> findFeatureByDescriptionContaining(String description_1) throws DataAccessException;

	public Set<Feature> findFeatureByDescriptionContaining(String description_1, int startResult, int maxRows)
			throws DataAccessException;

	public Feature findFeatureByPrimaryKey(Integer id) throws DataAccessException;

	public Feature findFeatureByPrimaryKey(Integer id, int startResult, int maxRows) throws DataAccessException;

	public Set<Feature> findFeaturesByIds(Set<Integer> ids) throws DataAccessException;

	public Set<Feature> findAllFeatures() throws DataAccessException;

	public Set<Feature> findAllFeatures(int startResult, int maxRows) throws DataAccessException;

	public Set<Feature> findFeaturesByDetectmethod(Integer detectmethodId, int start, int max);

	public Set<Feature> findFeatureByCompositeProperities(String sql, int startResult, int maxRows)
			throws DataAccessException;

	public Set<Feature> findFeaturesByDetachedCriteria(CmiPagination page) throws DataAccessException;

	public Feature findFeatureByPhysicalPrimaryKey(String name, Integer detectmethodId) throws DataAccessException;

	public Feature findFeatureByPhysicalPrimaryKey(String name, Integer detectmethodId, int startResult, int maxRows)
			throws DataAccessException;
}
